<?php
////为防止注入漏洞，可以使用 prepare()方法准备要执行的语句对象，并用 execute()方法来执行语句。
//$db = new PDO('mysql:host=localhost; dbname=db3', 'root', '12qwas');
//$ps=$db->prepare('select * from students limit ?'); //这里？就是一个占位符
//$ps->bindValue(1,2,PDO::PARAM_INT);//第一个参数就是占位符的索引，从1开始
//$ps->execute(); //在执行查询时可以通过传递一个数组参数包含占位符对应的值
//foreach ($ps as $r){ //遍历结果集中的每条记录
//    echo "{$r['xh']}\t{$r['name']}\t{$r['age']}\n";
//}

//$db = new PDO('mysql:host=localhost; dbname=db3', 'root', '12qwas');
//$ps=$db->prepare('select * from students limit :offset,:length'); //这里？就是一个占位符
//$ps->bindValue(':offset',1,PDO::PARAM_INT);//第一个参数就是占位符的索引，从1开始
//$ps->bindValue(':length',2,PDO::PARAM_INT);
//$ps->execute(); //在执行查询时可以通过传递一个数组参数包含占位符对应的值
//foreach ($ps as $r){ //遍历结果集中的每条记录
//    echo "{$r['xh']}\t{$r['name']}\t{$r['age']}\n";
//}
//将变量绑定到占位符，在execute（）被调用的时候才能绑定变量的值
//$db = new PDO('mysql:host=localhost; dbname=db3', 'root', '12qwas');
//$ps=$db->prepare('select * from students limit :offset,:length'); //这里？就是一个占位符
//$ps->bindParam(':offset',$offset,PDO::PARAM_INT);//第一个参数就是占位符的索引，从1开始
//$ps->bindParam(':length',$length,PDO::PARAM_INT);
//$offset=$length=1;
//$ps->execute(); //在execute（）被调用的时候才能绑定变量的值
//foreach ($ps as $r){ //遍历结果集中的每条记录
//    echo "{$r['xh']}\t{$r['name']}\t{$r['age']}\n";
//}

//将变量绑定到一个查询结果集中给定的列
$db = new PDO('mysql:host=localhost; dbname=db3', 'root', '12qwas');
$ps=$db->prepare('select * from students limit 1,2'); //这里？就是一个占位符
$ps->bindColumn(1,$xh);//通过列号绑定，从1开始
$ps->bindColumn(2,$name);
$ps->bindColumn('age',$age,PDO::PARAM_INT);//通过列名绑定
$ps->execute(); //在execute（）被调用的时候才能绑定变量的值
foreach ($ps as $r){ //遍历结果集中的每条记录
    echo "{$xh}\t{$name}\t{$age}\n";//可直接使用绑定到列的变量名
}